package com.copm.ifm.servers.sys.mapper.menu;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.copm.ifm.base.basic.constant.DbConstants;
import com.copm.ifm.servers.sys.dto.SysMenuPageDTO;
import com.copm.ifm.servers.sys.entity.SysMenu;
import com.copm.ifm.servers.sys.vo.SysMenuPageVO;

import java.util.List;
import java.util.Set;

/**
 * <p>
 * 系统菜单表 Mapper 接口
 * </p>
 *
 * @author zzf
 * @since 2020-12-14
 */
public interface SysMenuMapper extends BaseMapper<SysMenu> {

    List<SysMenuPageVO> selectForPage(SysMenuPageDTO param);

    SysMenu selectMenuById(Long id);

    default List<SysMenu> selectSysMenu(Integer sysMenu) {
        return selectList(new LambdaQueryWrapper<SysMenu>()
                .eq(SysMenu::getEnabled, DbConstants.DEFAULT_YES)
                .eq(SysMenu::getDeleted, DbConstants.DEFAULT_NO)
                .eq(SysMenu::getSysMenu, sysMenu));
    }

    default List<SysMenu> selectListByPaths(Set<String> parentPath) {
        return selectList(new LambdaQueryWrapper<SysMenu>()
                .eq(SysMenu::getEnabled, DbConstants.DEFAULT_YES)
                .eq(SysMenu::getDeleted, DbConstants.DEFAULT_NO)
                .in(SysMenu::getPath, parentPath)
        );
    }
}
